// 概述脚手架的实现过程
/* 
1：创建新文件夹，并进入
mkdir generator-wy-vue
cd generator-wy-vue
2:初始化package.json文件
npm init
3：安装依赖yeoman-generator
npm install yeoman-generator
4：新建主入口文件
文件夹generators -> 文件夹app > index.js
index.js文件内
引入Generator
模板继承自Generator
prompting方法（询问用户基本信息）
writing方法（读取写入文件）
5：新建templates文件夹，把模板文件拷贝到templates文件夹内
 （在writing方法内部完成）所有文件写在一个数组内部，在writing方法内部循环数组，把每一项通过this.fs.copyTpl()方法写入
6：npm link
把generator-wy-vue这个模块作为全局模块link到全局
7：测试：定位到一个全新的目录，运行刚刚创建的generator
yo wy-vue(自定义模块的名字)

*/

const Generator = require('yeoman-generator')

module.exports = class extends Generator {
  prompting () {
    return this.prompt([
      {
        type: 'input',
        name: 'name',
        message: 'Your project name ?',
        default: this.appname
      }
    ])
    .then( answers => {
      this.answers = answers
    })
  }
  writing () {
    const templates = [
      'src/assets/logo.png',
      'src/components/HelloWorld.vue',
      'src/router/index.js',
      'src/App.vue',
      'src/main.js',
      '.eslintrc.js',
      '.gitignore',
      'index.html',
      'package-lock.json',
      'package.json',
      'README.md'
    ]
    templates.forEach( item => {
      this.fs.copyTpl(
        this.templatePath(item),
        this.destinationPath(item),
        this.answers
      )
    })
  }
}